1. Field of the Invention
The present invention relates to the field of testing integrated circuits, and particularly to designing integrated circuits and their associated test programs so as to improve fault coverage.
2. Description of Background Art
Research and technology have provided society with a wide variety of electronic devices. Some modern electronic devices are powerful, and can be very beneficial to those who use them, or very enjoyable. Examples include, but are not limited to: personal computers (PCs), personal digital assistants (PDAs), pagers, mobile phones, portable music playback devices, or game systems. Each of these electronic devices contain one or more integrated circuits (ICs). Moreover, each could not exist in its present form without complex and powerful integrated circuits.
An integrated circuit, or a chip as it is sometimes called, undergoes testing after it is manufactured and before it is assembled into an electronic device or system. Such testing is important because even the most advanced and carefully controlled manufacturing processes produce a percentage of chips that do not work.
Because the wires and transistors within a modern integrated circuit are so small, a speck of dust that gets on the integrated circuit while it is being manufactured, or on the photographic masks or reticules used, is likely to make that particular integrated circuit chip fail to operate properly. There are causes of manufacturing defects or faults other than dust and contaminants, but many of them affect only a single integrated circuit. Thus, careful and thorough testing of each individual integrated circuit is required.
Modern test systems for integrated circuits typically operate under the control of a test program. A test program may specify, among other things, the input signals to apply to the integrated circuit that is being tested as well as what output signals to expect from it. Integrated circuits that do not produce the expected outputs at the expected times may be rejected as defective. Typically, not only does each different integrated circuit design require its own test program, but each change or revision to an IC design requires a corresponding change or revision to the test program.
Modern integrated circuit technology allows literally millions of transistors, wires and other electrical devices to be manufactured on a single integrated circuit. Because of this complexity, it can be difficult or impossible to develop a test program that thoroughly tests every combination of possible input signals, every device on the integrated circuit, or every feature that the integrated circuit implements in every mode in which the integrated circuit can be operated. Even if such a program were available, it may be likely to be too lengthy to be practical; that is, it may not be economical to leave each integrated circuit in a sophisticated and expensive test system long enough to run the entire program.
Because of these practical limits, most test programs are written so as to exercise almost every electrical node within the integrated circuit, or so as to make a failure on almost every node appear as an erroneous output that is observed by a system that is testing the integrated circuit. Coverage of 95% of the nodes is generally considered a suitable target.
However, test programs that cover faults at 95% of the nodes of a complex integrated circuit often have substantial drawbacks, including but not limited to:                Running the test program on the integrated circuit tester often requires longer than desired to keep down the testing time, and thus keep down the cost of manufacturing the integrated circuit;        Developing the test program often requires a substantial amount of engineering time; and        The test program often requires change or redesign every time that the, design of the integrated circuit is corrected or improved.        